coulomb gan
Coulomb GANs: Provably Optimal Nash Equilibria via Potential Fields
Unterthiner, Thomas, Nessler, Bernhard, Seward, Calvin, Klambauer, Günter, Heusel, Martin, Ramsauer, Hubert, Hochreiter, Sepp
Generative adversarial networks (GANs) evolved into one of the most successful unsupervised techniques for generating realistic images. Even though it has recently been shown that GAN training converges, GAN models often end up in local Nash equilibria that are associated with mode collapse or otherwise fail to model the target distribution. We introduce Coulomb GANs, which pose the GAN learning problem as a potential field of charged particles, where generated samples are attracted to training set samples but repel each other. The discriminator learns a potential field while the generator decreases the energy by moving its samples along the vector (force) field determined by the gradient of the potential field. Through decreasing the energy, the GAN model learns to generate samples according to the whole target distribution and does not only cover some of its modes. We prove that Coulomb GANs possess only one Nash equilibrium which is optimal in the sense that the model distribution equals the target distribution. We show the efficacy of Coulomb GANs on a variety of image datasets. On LSUN and celebA, Coulomb GANs set a new state of the art and produce a previously unseen variety of different samples.
- North America > United States > Massachusetts > Middlesex County > Cambridge (0.04)
- North America > United States > Colorado > Boulder County > Boulder (0.04)
- Europe > United Kingdom > England > Greater London > London (0.04)
- (2 more...)
bioinf-jku/coulomb_gan
This repository contains an implementation of Coulomb GANs as described in Coulomb GANs: Provably Optimal Nash Equilibria via Potential Fields by Unterthiner et al. As a first step, adjust the path to the datasets in get_dataset_path in the file utils.py. Note that during training, the FID metric is calculated to estimate quality. But to save time, we use only 5k generated samples, which underestimates the FID. Thus to evaluate final model quality, use the evaluate_fid.py The implementation was developed in Python 3.6 using Tensorflow 1.2, but should work with any version of Python 3.5 and Tensorflow 1.0 .